/**
 * 22.堆空间 开辟(malloc) & 释放(free)
 * https://www.bilibili.com/video/BV1vs411n7TH?p=97
 */

void stack_test();
void malloc_free();
void malloc_2_array();
void level2_pointer_malloc();

int main() {
    //1.栈大小验证
    stack_test();

    /**
     * 2.堆空间 开辟&释放
     * 见 下方方法:
     */
    void malloc_free();     //stdlib.h.c 的方法
    void malloc_2_array();

    //3. 2级指针对应的堆空间
    level2_pointer_malloc();//stdlib.h.c 的方法

    return 0;
}

//1.栈大小验证
void stack_test() {
    /**
     * 栈区大小: 8200000*4=32800000 Byte
     *                   =32031.25 Kb
     *                   =31.280517578125 Mb
     * 远远大于栈区的 1Mb 大小, 栈溢出
     * 可以手动扩充
     */
//    int arr1[8200000] = {0};

    //3.1280517578125 Mb, 还是溢出
//    int arr2[820000] = {0};

    //1.042683919270833 Mb, 正常了
//    int arr3[820000 / 3] = {0};
}

